/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package miage.sessions.ecom.remote;

import java.rmi.RemoteException;
import java.util.Date;
import java.util.List;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import javax.ejb.Remote;
import miage.beans.FacturePresentation;
import miage.beans.ProduitPresentation;

/**
 *
 * @author Pepito
 */
@Remote
public interface EcomCustomerRemote {
    /*
     * implémentation réalisée des fonctions suivantes:
     */
    public miage.beans.ClientPresentation getAuthentification(java.lang.String login, java.lang.String password)throws FinderException, RemoteException;
    public java.util.List<miage.beans.CategoriePresentation> getAllCategorie()throws FinderException, RemoteException;   
    public java.util.List<miage.beans.ProduitPresentation> getAllProduitByCategorie(java.lang.String categorie)throws FinderException, RemoteException;
    public java.util.List<miage.beans.ProduitPresentation> getAllProduitByMagasin(String reference_store)throws FinderException, RemoteException;
    public java.util.List<miage.beans.ProduitPresentation> getAllProduitByName(String nom_produit)throws FinderException, RemoteException;
    public ProduitPresentation getProduitByReferenceProduit(String reference_produit)throws FinderException, RemoteException;

    public java.util.List<miage.beans.ProduitPresentation> getAllProduitByPrix(double prixmax)throws FinderException, RemoteException;       


    public java.util.List<miage.beans.MagasinPresentation> getAllMagasin()throws FinderException, RemoteException;
    public miage.beans.MagasinPresentation getMagasin(java.lang.String reference_store)throws FinderException, RemoteException;
    
    public void addClient(miage.beans.ClientPresentation client)throws CreateException, FinderException, RemoteException;
    public miage.beans.ClientPresentation getClient(java.lang.String login, java.lang.String password)throws FinderException, RemoteException;
    public void deleteClient(java.lang.String login, java.lang.String password)throws FinderException, RemoteException;
    public void updateClient(miage.beans.ClientPresentation client)throws FinderException, RemoteException;

    public void viderCaddie();
    public void deleteProduitInCart(miage.beans.ProduitPresentation produit);
    public void addProduitInCart(ProduitPresentation produit);
    public int nombreProduitInCart();
    public List<ProduitPresentation> getProduitDuPanier();
    public void clearProduitDuPanier();
    public List<Double> getPrixProduits();
    public double getPrixTotal();
        
    public double getConvertToEuro(double montant, String symbole);
    public double getConvertFromEuro(double montant, String symbole);
    
  
    public miage.beans.FacturePresentation getFactureByIdLogin(int id_facture, java.lang.String login)throws FinderException, RemoteException;
    public java.util.List<miage.beans.FacturePresentation> getAllFactureByClient(java.lang.String login)throws FinderException, RemoteException;
    public java.util.List<miage.beans.FacturePresentation> getAllFactureBetweenToDateByClient(java.util.Date dateDebut, java.util.Date dateFin, java.lang.String login)throws FinderException, RemoteException;
    public void addFacture(FacturePresentation facture)throws CreateException, FinderException, RemoteException;
    
    public FacturePresentation getFactureByLoginDate(String login, Date date) throws FinderException, RemoteException;
    
    public String getCurrencyRealName(String currencySymbol);
    public List<String> getCurrencySymbols();
}  
